// Builder.cpp

#include "Builder.h"
#include "Product.h"
#include <iostream>
using namespace std;

Builder::Builder()
{
}

Builder::~Builder()
{
}

ConcreteBuilder::ConcreteBuilder()
{
}

ConcreteBuilder::~ConcreteBuilder()
{
}

void ConcreteBuilder::BuildPartA(const std::string &buildPara)
{
	cout<<"Step1: Build PartA..."<<buildPara<<endl;
}

void ConcreteBuilder::BuildPartB(const std::string &buildPara)
{
	cout<<"Step1: Build PartB..."<<buildPara<<endl;
}

void ConcreteBuilder::BuildPartC(const std::string &buildPara)
{
	cout<<"Step1: Build PartC..."<<buildPara<<endl;
}

Product *ConcreteBuilder::GetProduct()
{
	BuildPartA("pre-defined");
	BuildPartB("pre-defined");
	BuildPartC("pre-defined");

	return new Product();
}